hhkb
모의해킹

호스트기반모의해킹_20_계정 정보 기반 공격

작성자 : Heehyeon Yoo|2025-12-02
# 모의해킹# Brute Force# Hydra# WPScan# Password Spraying

1. 개요

계정 정보 기반 공격(Credential-based Attacks)은 사용자 이름과 비밀번호를 이용하여 시스템 인증을 우회하거나 획득하는 공격 기법이다.

  • 핵심: 유효한 사용자 계정을 획득하면 정상적인 사용자로 위장할 수 있어 탐지가 어렵다.

2. 공격 유형 분류

2.1 무차별 대입(Brute Force) & 사전 공격(Dictionary Attack)

  • Brute Force: 가능한 모든 문자열 조합(AAA, AAB...)을 시도한다. 시간이 오래 걸려 실무에서는 잘 쓰이지 않는다.
  • Dictionary Attack: 사람들이 자주 쓰는 비밀번호(password, 123456)나 유출된 비밀번호 목록(rockyou.txt)을 대입한다.

2.2 패스워드 스프레이(Password Spraying)

  • 개념: "하나의 비밀번호를 다수의 계정에" 시도하는 기법.
  • 목적: 계정 잠금(Account Lockout) 임계치를 피하기 위함. 특정 유저에게 5번 틀리면 잠기지만, 100명의 유저에게 1번씩만 틀리면 잠기지 않는다.
  • 예시: 전 직원에게 Summer2025! 비밀번호 대입.

2.3 크리덴셜 스터핑(Credential Stuffing)

  • 개념: 다른 사이트에서 유출된 계정 정보(ID/PW)를 타겟 서비스에 그대로 대입한다.
  • 원리: 사용자는 여러 사이트에서 동일한 비밀번호를 재사용하는 경향이 있다.

3. 실습 도구 및 기법

3.1 Hydra: 네트워크 서비스 브루트 포스

다양한 프로토콜(SSH, FTP, HTTP 등)을 지원하는 고속 로그인 크래커.

SSH/FTP 공격

# -L: 유저 목록, -P: 패스워드 목록
hydra -L users.txt -P passwords.txt ssh://[Target_IP]
hydra -L users.txt -P passwords.txt ftp://[Target_IP]

HTTP Post Form 공격(웹 로그인)

웹 로그인의 경우, 요청 패킷 분석이 선행되어야 한다.

  1. Burp Suite로 로그인 요청 패킷 캡처. 파라미터(log, pwd) 및 실패 메시지(Invalid username) 확인.
  2. Hydra 구문:
    hydra -l [User] -P [Pass_List] [Target_IP] http-post-form \
    "/wp-login.php:log=^USER^&pwd=^PASS^:F=Invalid"
    
    • ^USER^, ^PASS^: 대입할 위치 지정.
    • F=Invalid: 실패 조건(에러 메시지에 'Invalid' 문자열 포함 시 실패로 간주).

3.2 WPScan: 워드프레스 전용

워드프레스의 유저 열거(Enumeration)부터 패스워드 공격까지 자동화한다.

wpscan --url http://[Target_IP] --passwords [Pass_List]

4. 실무에서는?(Field Notes)

  1. 계정 잠금(Account Lockout) 주의:
    • 수십 번의 로그인 실패 시 해당 계정이 잠기거나(Lock), 관리자에게 경보가 갈 수 있다.
    • 특히 CEO, 임원 계정을 잠그면 업무 마비로 이어져 프로젝트가 중단될 수 있다.
    • 팁: 사전에 고객사에게 패스워드 정책(임계치, 잠금 시간) 정보를 요청하여, 그 임계치 이하로 공격 속도를 조절해야 한다.
  2. 호스트 기반 블랙리스트:
    • 짧은 시간에 다량의 로그인 시도가 발생하면 방화벽(WAF, IPS)이 공격자 IP를 차단할 수 있다.
  3. 기본 계정(Default Credentials) 확인:
    • 복잡한 공격 전, admin/admin, root/root 같은 제조사 기본 계정을 먼저 시도해라. 의외로 성공률이 높다.